package com.sys.ai.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sys.common.annotation.Excel;
import com.sys.common.core.domain.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 向量数据库管理对象 ai_embedding_db
 *
 * @author LGY
 * @date 2025-05-26
 */
@Data
@Accessors(chain = true)
@TableName("ai_embedding_db")
@Schema(description = "向量数据库管理对象")
public class AiEmbeddingDb extends BaseEntity implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @Schema(description = "ID")
    private String id;
    /**
     * 数据库名称
     */
    @Excel(name = "数据库名称")
    @TableField(value = "name")
    @Schema(description = "数据库名称")
    private String name;
    /**
     * 类型 postgre
     */
    @Excel(name = "类型 postgre")
    @TableField(value = "type")
    @Schema(description = "类型 postgre")
    private String type;
    /**
     * 数据库连接url
     */
    @Excel(name = "数据库连接url")
    @TableField(value = "url")
    @Schema(description = "数据库连接url")
    private String url;
    /**
     * 连接用户名
     */
    @Excel(name = "连接用户名")
    @TableField(value = "username")
    @Schema(description = "连接用户名")
    private String username;
    /**
     * 连接密码
     */
    @Excel(name = "连接密码")
    @TableField(value = "password")
    @Schema(description = "连接密码")
    private String password;
    /**
     * 相似度计算类型
     */
    @Excel(name = "相似度计算类型")
    @TableField(value = "similarity_type")
    @Schema(description = "相似度计算类型")
    private String similarityType;
    /**
     * 相似度，根据不同的类型，代表的含义不一致
     */
    @Excel(name = "相似度，根据不同的类型，代表的含义不一致")
    @TableField(value = "similarity_value")
    @Schema(description = "相似度，根据不同的类型，代表的含义不一致")
    private BigDecimal similarityValue;
    /**
     * 备注
     */
    @Excel(name = "备注")
    @TableField(value = "remark")
    @Schema(description = "备注")
    private String remark;
}